fix: allow page routes to opt out of route semantics - #182556 - #12674
fix: allow page routes to opt out of route semantics - #182556#12674haashem wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Code Review
This pull request adds an includeRouteSemantics option (defaulting to true) to CupertinoPageRoute, CupertinoPage, MaterialPageRoute, and MaterialPage, allowing them to opt out of introducing a semantics route scope. The review feedback suggests making the underlying _includeRouteSemantics getter public on both CupertinoRouteTransitionMixin and MaterialRouteTransitionMixin. This change would allow custom routes to override the property, simplify the overrides in the route and page classes, and enable reusing the documentation template via macros.
|
Thank you for your contribution! Because of the volume of PRs we receive, we require that new contributors use our checklist to guide them through critical steps in creating a Flutter PR. Please edit the PR description to add the checklist, then ensure that you have completed all of the steps. |
Nested navigators may use routes to update only part of the visible screen. However, Material and Cupertino page routes currently introduce a semantics route scope, causing screen readers to treat these updates as navigation to a new screen.
This adds
includeRouteSemanticsto:MaterialPageRouteMaterialPageCupertinoPageRouteCupertinoPageThe option defaults to
true, preserving existing behavior. When set tofalse, the route content is not wrapped in a semantics node withscopesRoute: true.Tests cover both imperative routes and declarative pages.
Fixes flutter/flutter#168915.
Pre-Review Checklist
///).